package edu.gdut.thesissys.vo;

import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * StudentChooseTitle entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "student_choose_title", catalog = "gdutmis")
public class StudentChooseTitle extends BaseVo implements java.io.Serializable {

	// Fields

	/**
	 * 
	 */
	private static final long serialVersionUID = 6445027583840792023L;
	private Integer studentChooseTitleId;
	private Paper paper;
	private Student student;
	private TaskBook taskBook;
	private SecondTeacher secondTeacher;
	private Teacher teacher;
	private PaperTitle paperTitle;
	private Integer choosedType;
	private Date auditTime;
	private String isChoosed;
	private String name;
	private String direction;
	private String type;
	private String source;
	private String introduction;
	private String standard;
	private String auditingIdea;
	private String isPassed;

	// Constructors

	/** default constructor */
	public StudentChooseTitle() {
	}

	/** minimal constructor */
	public StudentChooseTitle(Student student, Teacher teacher, String name,
			String direction, String type, String source, String isPassed) {
		this.student = student;
		this.teacher = teacher;
		this.name = name;
		this.direction = direction;
		this.type = type;
		this.source = source;
		this.isPassed = isPassed;
	}

	/** full constructor */
	public StudentChooseTitle(Paper paper, Student student, TaskBook taskBook,
			SecondTeacher secondTeacher, Teacher teacher,
			PaperTitle paperTitle, Integer choosedType, Date auditTime,
			String isChoosed, String name, String direction, String type,
			String source, String introduction, String standard,
			String auditingIdea, String isPassed) {
		this.paper = paper;
		this.student = student;
		this.taskBook = taskBook;
		this.secondTeacher = secondTeacher;
		this.teacher = teacher;
		this.paperTitle = paperTitle;
		this.choosedType = choosedType;
		this.auditTime = auditTime;
		this.isChoosed = isChoosed;
		this.name = name;
		this.direction = direction;
		this.type = type;
		this.source = source;
		this.introduction = introduction;
		this.standard = standard;
		this.auditingIdea = auditingIdea;
		this.isPassed = isPassed;
	}

	// Property accessors
	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "Student_choose_title_id", unique = true, nullable = false)
	public Integer getStudentChooseTitleId() {
		return this.studentChooseTitleId;
	}

	public void setStudentChooseTitleId(Integer studentChooseTitleId) {
		this.studentChooseTitleId = studentChooseTitleId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "paper_id")
	public Paper getPaper() {
		return this.paper;
	}

	public void setPaper(Paper paper) {
		this.paper = paper;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "student_id", nullable = false)
	public Student getStudent() {
		return this.student;
	}

	public void setStudent(Student student) {
		this.student = student;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "task_book_id")
	public TaskBook getTaskBook() {
		return this.taskBook;
	}

	public void setTaskBook(TaskBook taskBook) {
		this.taskBook = taskBook;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "second_teacher_id")
	public SecondTeacher getSecondTeacher() {
		return this.secondTeacher;
	}

	public void setSecondTeacher(SecondTeacher secondTeacher) {
		this.secondTeacher = secondTeacher;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "teacher_id", nullable = false)
	public Teacher getTeacher() {
		return this.teacher;
	}

	public void setTeacher(Teacher teacher) {
		this.teacher = teacher;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "paper_title_id")
	public PaperTitle getPaperTitle() {
		return this.paperTitle;
	}

	public void setPaperTitle(PaperTitle paperTitle) {
		this.paperTitle = paperTitle;
	}

	@Column(name = "choosed_type")
	public Integer getChoosedType() {
		return this.choosedType;
	}

	public void setChoosedType(Integer choosedType) {
		this.choosedType = choosedType;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "audit_time", length = 10)
	public Date getAuditTime() {
		return this.auditTime;
	}

	public void setAuditTime(Date auditTime) {
		this.auditTime = auditTime;
	}

	@Column(name = "is_choosed", length = 1)
	public String getIsChoosed() {
		return this.isChoosed;
	}

	public void setIsChoosed(String isChoosed) {
		this.isChoosed = isChoosed;
	}

	@Column(name = "name", nullable = false, length = 100)
	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Column(name = "direction", nullable = false, length = 50)
	public String getDirection() {
		return this.direction;
	}

	public void setDirection(String direction) {
		this.direction = direction;
	}

	@Column(name = "type", nullable = false, length = 14)
	public String getType() {
		return this.type;
	}

	public void setType(String type) {
		this.type = type;
	}

	@Column(name = "source", nullable = false, length = 18)
	public String getSource() {
		return this.source;
	}

	public void setSource(String source) {
		this.source = source;
	}

	@Column(name = "introduction", length = 65535)
	public String getIntroduction() {
		return this.introduction;
	}

	public void setIntroduction(String introduction) {
		this.introduction = introduction;
	}

	@Column(name = "standard", length = 65535)
	public String getStandard() {
		return this.standard;
	}

	public void setStandard(String standard) {
		this.standard = standard;
	}

	@Column(name = "auditing_idea", length = 65535)
	public String getAuditingIdea() {
		return this.auditingIdea;
	}

	public void setAuditingIdea(String auditingIdea) {
		this.auditingIdea = auditingIdea;
	}

	@Column(name = "is_passed", nullable = false, length = 1)
	public String getIsPassed() {
		return this.isPassed;
	}

	public void setIsPassed(String isPassed) {
		this.isPassed = isPassed;
	}

}